package com.hunttown.mes.rpc.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Objects;

/**
 * created by wangjunfu on 2019-07-07 10:50:24
 */
public class TransportExpenseDTO implements Serializable {
    private Integer id;
    private Integer entId;
    private Integer parentId;
    private String bxName;
    private String bxNo;
    private Integer bxType;
    private Integer carId;
    private Integer driverId;
    private Integer businessId;
    private Integer bxPeople;
    private Integer bxProject;
    private Integer companyId;
    private String openBack;
    private String backAccount;
    private String linkName;
    private String linkMobile;
    private Integer payCompanyId;
    private Integer payWay;
    private Date payDate;
    private String invoiceNo;
    private BigDecimal bxAmount;
    private BigDecimal realBxAmount;
    private BigDecimal realUseAmount;
    private Integer reviewer;
    private Date reviewDate;
    private Integer reviewStatus;
    private Integer bxExtPerson;
    private Integer bxStatus;
    private Date bxDate;
    private String batchNumber;
    private String remark;
    private Integer relationId;
    private String relationApplyArray;
    private String bookidsArray;
    private Integer applyId;
    private Integer adminId;
    private Date createTime;
    private Integer stopFlag;
    private Integer deleteFlag;

    private String reviewDateSr;
    private String bxDateSr;
    private String createTimeSr;

    private String bxPeopleCn;
    private String reviewerCn;
    private String bxExtPersonCn;
    private String adminName;

    private String bxTypeName;
    private String bxProjectName;
    private String bxStatusName;
    private String bookIds;             //行程ID集合
    private Integer showAll;            //显示所有：包括已取消的数据
    private Integer applyNodeSign;      //当前审批环节标记
    private String applyNodeTitle;      //当前审批环节名称
    private Integer purchaseType;       //采购类型：1汽车配件 2日常采购
    private String realBxAmountSr;      //美化实际报销金额
    private String realUseAmountSr;     //美化

    private String companyName;
    private String payCompanyName;
    private String payWayName;
    private String carNumber;
    private String driverName;

    private String borrowIds;       //借款信息ID 集合
    private String payIds;          //费用支付信息ID 集合
    private String newBorrowIds;    //借款信息ID 集合（存储更新后的）
    private String newPayIds;       //费用支付信息ID 集合（存储更新后的）

    private String payDateSr;
    private String linkNameLike;    //收款人模糊搜索

    private List<TransportExpenseDTO> childList;

    //以下内容由Alt+Ins快捷生成

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getEntId() {
        return entId;
    }

    public void setEntId(Integer entId) {
        this.entId = entId;
    }

    public Integer getParentId() {
        return parentId;
    }

    public void setParentId(Integer parentId) {
        this.parentId = parentId;
    }

    public String getBxName() {
        return bxName;
    }

    public void setBxName(String bxName) {
        this.bxName = bxName;
    }

    public String getBxNo() {
        return bxNo;
    }

    public void setBxNo(String bxNo) {
        this.bxNo = bxNo;
    }

    public Integer getBxType() {
        return bxType;
    }

    public void setBxType(Integer bxType) {
        this.bxType = bxType;
    }

    public Integer getCarId() {
        return carId;
    }

    public void setCarId(Integer carId) {
        this.carId = carId;
    }

    public Integer getDriverId() {
        return driverId;
    }

    public void setDriverId(Integer driverId) {
        this.driverId = driverId;
    }

    public Integer getBusinessId() {
        return businessId;
    }

    public void setBusinessId(Integer businessId) {
        this.businessId = businessId;
    }

    public Integer getBxPeople() {
        return bxPeople;
    }

    public void setBxPeople(Integer bxPeople) {
        this.bxPeople = bxPeople;
    }

    public Integer getBxProject() {
        return bxProject;
    }

    public void setBxProject(Integer bxProject) {
        this.bxProject = bxProject;
    }

    public Integer getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    public String getOpenBack() {
        return openBack;
    }

    public void setOpenBack(String openBack) {
        this.openBack = openBack;
    }

    public String getBackAccount() {
        return backAccount;
    }

    public void setBackAccount(String backAccount) {
        this.backAccount = backAccount;
    }

    public String getLinkName() {
        return linkName;
    }

    public void setLinkName(String linkName) {
        this.linkName = linkName;
    }

    public String getLinkMobile() {
        return linkMobile;
    }

    public void setLinkMobile(String linkMobile) {
        this.linkMobile = linkMobile;
    }

    public Integer getPayCompanyId() {
        return payCompanyId;
    }

    public void setPayCompanyId(Integer payCompanyId) {
        this.payCompanyId = payCompanyId;
    }

    public Integer getPayWay() {
        return payWay;
    }

    public void setPayWay(Integer payWay) {
        this.payWay = payWay;
    }

    public Date getPayDate() {
        return payDate;
    }

    public void setPayDate(Date payDate) {
        this.payDate = payDate;
    }

    public String getInvoiceNo() {
        return invoiceNo;
    }

    public void setInvoiceNo(String invoiceNo) {
        this.invoiceNo = invoiceNo;
    }

    public BigDecimal getBxAmount() {
        return bxAmount;
    }

    public void setBxAmount(BigDecimal bxAmount) {
        this.bxAmount = bxAmount;
    }

    public BigDecimal getRealBxAmount() {
        return realBxAmount;
    }

    public void setRealBxAmount(BigDecimal realBxAmount) {
        this.realBxAmount = realBxAmount;
    }

    public BigDecimal getRealUseAmount() {
        return realUseAmount;
    }

    public void setRealUseAmount(BigDecimal realUseAmount) {
        this.realUseAmount = realUseAmount;
    }

    public Integer getReviewer() {
        return reviewer;
    }

    public void setReviewer(Integer reviewer) {
        this.reviewer = reviewer;
    }

    public Date getReviewDate() {
        return reviewDate;
    }

    public void setReviewDate(Date reviewDate) {
        this.reviewDate = reviewDate;
    }

    public Integer getReviewStatus() {
        return reviewStatus;
    }

    public void setReviewStatus(Integer reviewStatus) {
        this.reviewStatus = reviewStatus;
    }

    public Integer getBxExtPerson() {
        return bxExtPerson;
    }

    public void setBxExtPerson(Integer bxExtPerson) {
        this.bxExtPerson = bxExtPerson;
    }

    public Integer getBxStatus() {
        return bxStatus;
    }

    public void setBxStatus(Integer bxStatus) {
        this.bxStatus = bxStatus;
    }

    public Date getBxDate() {
        return bxDate;
    }

    public void setBxDate(Date bxDate) {
        this.bxDate = bxDate;
    }

    public String getBatchNumber() {
        return batchNumber;
    }

    public void setBatchNumber(String batchNumber) {
        this.batchNumber = batchNumber;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getRelationId() {
        return relationId;
    }

    public String getRelationApplyArray() {
        return relationApplyArray;
    }

    public void setRelationApplyArray(String relationApplyArray) {
        this.relationApplyArray = relationApplyArray;
    }

    public void setRelationId(Integer relationId) {
        this.relationId = relationId;
    }

    public String getBookidsArray() {
        return bookidsArray;
    }

    public void setBookidsArray(String bookidsArray) {
        this.bookidsArray = bookidsArray;
    }

    public Integer getApplyId() {
        return applyId;
    }

    public void setApplyId(Integer applyId) {
        this.applyId = applyId;
    }

    public Integer getAdminId() {
        return adminId;
    }

    public void setAdminId(Integer adminId) {
        this.adminId = adminId;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Integer getStopFlag() {
        return stopFlag;
    }

    public void setStopFlag(Integer stopFlag) {
        this.stopFlag = stopFlag;
    }

    public Integer getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(Integer deleteFlag) {
        this.deleteFlag = deleteFlag;
    }

    public String getReviewDateSr() {
        if (reviewDateSr == null || reviewDateSr.equals("")) {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

            if (reviewDate == null) {
                return "1990-01-01";
            } else {
                return df.format(new Date(reviewDate.getTime()));
            }
        } else {
            return reviewDateSr;
        }
    }

    public void setReviewDateSr(String reviewDateSr) {
        this.reviewDateSr = reviewDateSr;
    }

    public String getBxDateSr() {
        if (bxDateSr == null || bxDateSr.equals("")) {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

            if (bxDate == null) {
                return "1990-01-01";
            } else {
                return df.format(new Date(bxDate.getTime()));
            }
        } else {
            return bxDateSr;
        }
    }

    public void setBxDateSr(String bxDateSr) {
        this.bxDateSr = bxDateSr;
    }

    public String getCreateTimeSr() {
        if (createTimeSr == null || createTimeSr.equals("")) {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

            if (createTime == null) {
                return "1990-01-01";
            } else {
                return df.format(new Date(createTime.getTime()));
            }
        } else {
            return createTimeSr;
        }
    }

    public void setCreateTimeSr(String createTimeSr) {
        this.createTimeSr = createTimeSr;
    }

    public String getBxPeopleCn() {
        return bxPeopleCn;
    }

    public void setBxPeopleCn(String bxPeopleCn) {
        this.bxPeopleCn = bxPeopleCn;
    }

    public String getReviewerCn() {
        return reviewerCn;
    }

    public void setReviewerCn(String reviewerCn) {
        this.reviewerCn = reviewerCn;
    }

    public String getBxExtPersonCn() {
        return bxExtPersonCn;
    }

    public void setBxExtPersonCn(String bxExtPersonCn) {
        this.bxExtPersonCn = bxExtPersonCn;
    }

    public String getAdminName() {
        return adminName;
    }

    public void setAdminName(String adminName) {
        this.adminName = adminName;
    }

    public String getBxTypeName() {
        return bxTypeName;
    }

    public void setBxTypeName(String bxTypeName) {
        this.bxTypeName = bxTypeName;
    }

    public String getBxProjectName() {
        return bxProjectName;
    }

    public void setBxProjectName(String bxProjectName) {
        this.bxProjectName = bxProjectName;
    }

    public String getBxStatusName() {
        return bxStatusName;
    }

    public void setBxStatusName(String bxStatusName) {
        this.bxStatusName = bxStatusName;
    }

    public String getBookIds() {
        return bookIds;
    }

    public void setBookIds(String bookIds) {
        this.bookIds = bookIds;
    }

    public Integer getShowAll() {
        return showAll;
    }

    public void setShowAll(Integer showAll) {
        this.showAll = showAll;
    }

    public Integer getApplyNodeSign() {
        return applyNodeSign;
    }

    public void setApplyNodeSign(Integer applyNodeSign) {
        this.applyNodeSign = applyNodeSign;
    }

    public String getApplyNodeTitle() {
        return applyNodeTitle;
    }

    public void setApplyNodeTitle(String applyNodeTitle) {
        this.applyNodeTitle = applyNodeTitle;
    }

    public Integer getPurchaseType() {
        return purchaseType;
    }

    public void setPurchaseType(Integer purchaseType) {
        this.purchaseType = purchaseType;
    }

    public String getRealBxAmountSr() {
        if (this.realBxAmount == null) {
            return realBxAmountSr;
        }

        if (Objects.equals(this.realBxAmount.toString(), "0.00")) {
            return this.realBxAmount + "";
        }

        if (this.realBxAmount.toString().endsWith(".00")) {
            return this.realBxAmount.toString().replace(".00", "");
        }

        return realBxAmount + "";
    }

    public void setRealBxAmountSr(String realBxAmountSr) {
        this.realBxAmountSr = realBxAmountSr;
    }

    public String getRealUseAmountSr() {
        if (this.realUseAmount == null) {
            return realUseAmountSr;
        }

        if (Objects.equals(this.realUseAmount.toString(), "0.00")) {
            return this.realUseAmount + "";
        }

        if (this.realUseAmount.toString().endsWith(".00")) {
            return this.realUseAmount.toString().replace(".00", "");
        }

        return realUseAmount + "";
    }

    public void setRealUseAmountSr(String realUseAmountSr) {
        this.realUseAmountSr = realUseAmountSr;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getPayCompanyName() {
        return payCompanyName;
    }

    public void setPayCompanyName(String payCompanyName) {
        this.payCompanyName = payCompanyName;
    }

    public String getPayWayName() {
        return payWayName;
    }

    public void setPayWayName(String payWayName) {
        this.payWayName = payWayName;
    }

    public String getCarNumber() {
        return carNumber;
    }

    public void setCarNumber(String carNumber) {
        this.carNumber = carNumber;
    }

    public String getDriverName() {
        return driverName;
    }

    public void setDriverName(String driverName) {
        this.driverName = driverName;
    }

    public String getBorrowIds() {
        return borrowIds;
    }

    public void setBorrowIds(String borrowIds) {
        this.borrowIds = borrowIds;
    }

    public String getPayIds() {
        return payIds;
    }

    public void setPayIds(String payIds) {
        this.payIds = payIds;
    }

    public String getNewBorrowIds() {
        return newBorrowIds;
    }

    public void setNewBorrowIds(String newBorrowIds) {
        this.newBorrowIds = newBorrowIds;
    }

    public String getNewPayIds() {
        return newPayIds;
    }

    public void setNewPayIds(String newPayIds) {
        this.newPayIds = newPayIds;
    }

    public String getPayDateSr() {
        if (payDateSr == null || payDateSr.equals("")) {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

            if (payDate == null) {
                return "1990-01-01";
            } else {
                return df.format(new Date(payDate.getTime()));
            }
        } else {
            return payDateSr;
        }
    }

    public void setPayDateSr(String payDateSr) {
        this.payDateSr = payDateSr;
    }

    public String getLinkNameLike() {
        return linkNameLike;
    }

    public void setLinkNameLike(String linkNameLike) {
        this.linkNameLike = linkNameLike;
    }

    public List<TransportExpenseDTO> getChildList() {
        return childList;
    }

    public void setChildList(List<TransportExpenseDTO> childList) {
        this.childList = childList;
    }
}